<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="icon" type="image/x-icon" href="favicon.ico" />
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>chigraph: chi Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="chigraphDoxygenIcon.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">chigraph
   &#160;<span id="projectnumber">master</span>
   </div>
   <div id="projectbrief">Systems programming language written for beginners in LLVM</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('namespacechi.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">chi Namespace Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>The namespace where chigraph lives.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1ChiModule.html">ChiModule</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract class that represents a module of code in Chigraph Can be compiled to a llvm::Module.  <a href="structchi_1_1ChiModule.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1Context.html">Context</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The class that handles the loading, creation, storing, and compilation of modules It also stores a <code>LLVMContext</code> object to be used everywhere.  <a href="structchi_1_1Context.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1DataType.html">DataType</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A type of data Loose wrapper around llvm::Type*, except it knows which <a class="el" href="structchi_1_1ChiModule.html" title="An abstract class that represents a module of code in Chigraph Can be compiled to a llvm::Module...">ChiModule</a> it's in and it embeds debug types.  <a href="structchi_1_1DataType.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchi_1_1Debugger.html">Debugger</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper class for using LLDB with chigraph.  <a href="classchi_1_1Debugger.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1DefaultModuleCache.html">DefaultModuleCache</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1Flags.html">Flags</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A template class for type-safe flags.  <a href="structchi_1_1Flags.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1FunctionCompiler.html">FunctionCompiler</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class for compiling <code>GraphFunctions</code> into <code>llvm::Function</code>s.  <a href="structchi_1_1FunctionCompiler.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is an AST-like representation of a function in a graph It is used for IDE-like behavior, codegen, and JSON generation.  <a href="structchi_1_1GraphFunction.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1GraphModule.html">GraphModule</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Module that holds graph functions.  <a href="structchi_1_1GraphModule.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1GraphStruct.html">GraphStruct</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A class holding a compound type defined in a <a class="el" href="structchi_1_1GraphModule.html" title="Module that holds graph functions. ">GraphModule</a>.  <a href="structchi_1_1GraphStruct.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1LangModule.html">LangModule</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The module that provides built-in operations like literals, math operations, etc.  <a href="structchi_1_1LangModule.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1ModuleCache.html">ModuleCache</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class provides an interface for creating module caches.  <a href="structchi_1_1ModuleCache.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1NamedDataType.html">NamedDataType</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basicaly a std::pair&lt;std::string, DataType&gt;, except it has nicer names.  <a href="structchi_1_1NamedDataType.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1NodeCompiler.html">NodeCompiler</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper to compile nodes.  <a href="structchi_1_1NodeCompiler.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An instance of a node.  <a href="structchi_1_1NodeInstance.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1NodeType.html">NodeType</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A generic node type.  <a href="structchi_1_1NodeType.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1Result.html">Result</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The result object, used for identifiying errors with good diagnostics.  <a href="structchi_1_1Result.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchi_1_1Subprocess.html">Subprocess</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides an platform-independent abstraction for creating subprocesses.  <a href="structchi_1_1Subprocess.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a5ebe31b8bd52ced63520fbfd749e757f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a5ebe31b8bd52ced63520fbfd749e757f">CompileSettings</a> { <br />
&#160;&#160;<a class="el" href="namespacechi.html#a5ebe31b8bd52ced63520fbfd749e757fadcd9e587bf9e3e50e28d85f642306d33">CompileSettings::UseCache</a> = 1u, 
<br />
&#160;&#160;<a class="el" href="namespacechi.html#a5ebe31b8bd52ced63520fbfd749e757fa4f2978dbcab4d04e98b1a567eae27604">CompileSettings::LinkDependencies</a> = 1u &lt;&lt; 1, 
<br />
&#160;&#160;<a class="el" href="namespacechi.html#a5ebe31b8bd52ced63520fbfd749e757fa7a1920d61156abc05a60135aefe8bc67">CompileSettings::Default</a> = UseCache | LinkDependencies
<br />
 }<tr class="memdesc:a5ebe31b8bd52ced63520fbfd749e757f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Settings for compiling modules.  <a href="namespacechi.html#a5ebe31b8bd52ced63520fbfd749e757f">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a5ebe31b8bd52ced63520fbfd749e757f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0019cbd6ec4fd8ff0206bac877add0c1"><td class="memItemLeft" align="right" valign="top"><a id="a0019cbd6ec4fd8ff0206bac877add0c1"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>VCSType</b> { <br />
&#160;&#160;<b>Git</b>, 
<br />
&#160;&#160;<b>Unknown</b>
<br />
 }</td></tr>
<tr class="separator:a0019cbd6ec4fd8ff0206bac877add0c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:af2fbd3aba94ecac3f7b70548da25f4ee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#af2fbd3aba94ecac3f7b70548da25f4ee">compileCToLLVM</a> (const boost::filesystem::path &amp;ctollvmPath, llvm::LLVMContext &amp;llvmContext, std::vector&lt; std::string &gt; arguments, boost::string_view inputCCode, std::unique_ptr&lt; llvm::Module &gt; *toFill)</td></tr>
<tr class="memdesc:af2fbd3aba94ecac3f7b70548da25f4ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use chi-ctollvm to compile C source code to a llvm module It also uses <code>stdCIncludePaths</code> to find basic include paths.  <a href="#af2fbd3aba94ecac3f7b70548da25f4ee">More...</a><br /></td></tr>
<tr class="separator:af2fbd3aba94ecac3f7b70548da25f4ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8329038fce8125396cc9775460aa427b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a8329038fce8125396cc9775460aa427b">compileFunction</a> (const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;func, llvm::Module *mod, llvm::DICompileUnit *debugCU, llvm::DIBuilder &amp;debugBuilder)</td></tr>
<tr class="memdesc:a8329038fce8125396cc9775460aa427b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile the graph to an <code>llvm::Function</code> (usually called from JsonModule::generateModule)  <a href="#a8329038fce8125396cc9775460aa427b">More...</a><br /></td></tr>
<tr class="separator:a8329038fce8125396cc9775460aa427b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00be19cc8464681f474ecbcd27abe13c"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a00be19cc8464681f474ecbcd27abe13c">dependentPuresRecursive</a> (const <a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;inst)</td></tr>
<tr class="memdesc:a00be19cc8464681f474ecbcd27abe13c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the pures a <a class="el" href="structchi_1_1NodeInstance.html" title="An instance of a node. ">NodeInstance</a> relies on These are all the dependent pures (it's fetched recursively) They are in the order of dependency, for examply if node X depends on node Y, then node Y will come before node X.  <a href="#a00be19cc8464681f474ecbcd27abe13c">More...</a><br /></td></tr>
<tr class="separator:a00be19cc8464681f474ecbcd27abe13c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a895c4e199040694ef0c5984afa80af79"><td class="memItemLeft" align="right" valign="top">boost::filesystem::path&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a895c4e199040694ef0c5984afa80af79">executablePath</a> ()</td></tr>
<tr class="memdesc:a895c4e199040694ef0c5984afa80af79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the path of the executable.  <a href="#a895c4e199040694ef0c5984afa80af79">More...</a><br /></td></tr>
<tr class="separator:a895c4e199040694ef0c5984afa80af79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0aed3a616aceef33e7a336eddfd294b"><td class="memItemLeft" align="right" valign="top"><a id="ae0aed3a616aceef33e7a336eddfd294b"></a>
<a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><b>fetchModule</b> (const fs::path &amp;workspacePath, const fs::path &amp;name, bool recursive)</td></tr>
<tr class="separator:ae0aed3a616aceef33e7a336eddfd294b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cb9bd41eebfa97c5819f48e176aa63d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a3cb9bd41eebfa97c5819f48e176aa63d">fetchModule</a> (const boost::filesystem::path &amp;workspacePath, const boost::filesystem::path &amp;name, bool recursive)</td></tr>
<tr class="memdesc:a3cb9bd41eebfa97c5819f48e176aa63d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Downloads a module from a remote URL, currently supports.  <a href="#a3cb9bd41eebfa97c5819f48e176aa63d">More...</a><br /></td></tr>
<tr class="separator:a3cb9bd41eebfa97c5819f48e176aa63d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fd66f4db0dbade845553826bd971190"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a0fd66f4db0dbade845553826bd971190">interpretLLVMIR</a> (std::unique_ptr&lt; llvm::Module &gt; mod, llvm::CodeGenOpt::Level optLevel=llvm::CodeGenOpt::Default, const std::vector&lt; llvm::GenericValue &gt; &amp;args={}, llvm::Function *funcToRun=nullptr, llvm::GenericValue *ret=nullptr)</td></tr>
<tr class="memdesc:a0fd66f4db0dbade845553826bd971190"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interpret LLVM IR, just a convenience function.  <a href="#a0fd66f4db0dbade845553826bd971190">More...</a><br /></td></tr>
<tr class="separator:a0fd66f4db0dbade845553826bd971190"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33d2592c56c0b169c44b14332e80db44"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a33d2592c56c0b169c44b14332e80db44">interpretLLVMIRAsMain</a> (std::unique_ptr&lt; llvm::Module &gt; mod, llvm::CodeGenOpt::Level optLevel=llvm::CodeGenOpt::Default, const std::vector&lt; std::string &gt; &amp;args={}, llvm::Function *funcToRun=nullptr, int *ret=nullptr)</td></tr>
<tr class="memdesc:a33d2592c56c0b169c44b14332e80db44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interpret LLVM IR as if it were the main function.  <a href="#a33d2592c56c0b169c44b14332e80db44">More...</a><br /></td></tr>
<tr class="separator:a33d2592c56c0b169c44b14332e80db44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46ba4fa933baeba58beefc9e573b0668"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a46ba4fa933baeba58beefc9e573b0668">lineNumberFromNode</a> (<a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;inst)</td></tr>
<tr class="memdesc:a46ba4fa933baeba58beefc9e573b0668"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the mapped line number from a node.  <a href="#a46ba4fa933baeba58beefc9e573b0668">More...</a><br /></td></tr>
<tr class="separator:a46ba4fa933baeba58beefc9e573b0668"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6761d435d5c7fba00150f8e17f77228"><td class="memItemLeft" align="right" valign="top"><a id="aa6761d435d5c7fba00150f8e17f77228"></a>
<a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator+</b> (const <a class="el" href="structchi_1_1Result.html">Result</a> &amp;lhs, const <a class="el" href="structchi_1_1Result.html">Result</a> &amp;rhs)</td></tr>
<tr class="separator:aa6761d435d5c7fba00150f8e17f77228"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50b5a0b259b2f6220f4478c20f35862c"><td class="memItemLeft" align="right" valign="top"><a id="a50b5a0b259b2f6220f4478c20f35862c"></a>
<a class="el" href="structchi_1_1Result.html">Result</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator+=</b> (<a class="el" href="structchi_1_1Result.html">Result</a> &amp;lhs, const <a class="el" href="structchi_1_1Result.html">Result</a> &amp;rhs)</td></tr>
<tr class="separator:a50b5a0b259b2f6220f4478c20f35862c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c3fbcf4f981b77fca1fe2db6315e341"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a9c3fbcf4f981b77fca1fe2db6315e341">parseBitcodeFile</a> (const boost::filesystem::path &amp;file, llvm::LLVMContext &amp;ctx, std::unique_ptr&lt; llvm::Module &gt; *toFill)</td></tr>
<tr class="memdesc:a9c3fbcf4f981b77fca1fe2db6315e341"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a bitcode file.  <a href="#a9c3fbcf4f981b77fca1fe2db6315e341">More...</a><br /></td></tr>
<tr class="separator:a9c3fbcf4f981b77fca1fe2db6315e341"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac672cecc7c8dacc7e7a6057d303d8180"><td class="memItemLeft" align="right" valign="top"><a id="ac672cecc7c8dacc7e7a6057d303d8180"></a>
<a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><b>parseBitcodeString</b> (const std::string &amp;bitcode, llvm::LLVMContext &amp;ctx, std::unique_ptr&lt; llvm::Module &gt; *toFill)</td></tr>
<tr class="separator:ac672cecc7c8dacc7e7a6057d303d8180"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa47212ba13fb1a1d26774dc208c15255"><td class="memItemLeft" align="right" valign="top">std::pair&lt; std::string, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#aa47212ba13fb1a1d26774dc208c15255">parseColonPair</a> (const std::string &amp;in)</td></tr>
<tr class="memdesc:aa47212ba13fb1a1d26774dc208c15255"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a colonated pair Example: lang:i32 would turn into {lang, i32}.  <a href="#aa47212ba13fb1a1d26774dc208c15255">More...</a><br /></td></tr>
<tr class="separator:aa47212ba13fb1a1d26774dc208c15255"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa39dc32f0a553366a3e039b3f26402be"><td class="memItemLeft" align="right" valign="top">std::tuple&lt; VCSType, std::string, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#aa39dc32f0a553366a3e039b3f26402be">resolveUrlFromModuleName</a> (const boost::filesystem::path &amp;path)</td></tr>
<tr class="memdesc:aa39dc32f0a553366a3e039b3f26402be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the URL for a VCS repository from a module name.  <a href="#aa39dc32f0a553366a3e039b3f26402be">More...</a><br /></td></tr>
<tr class="separator:aa39dc32f0a553366a3e039b3f26402be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29ff9f3364b9ad0f25a990b8373971b4"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a29ff9f3364b9ad0f25a990b8373971b4">stringifyLLVMType</a> (llvm::Type *ty)</td></tr>
<tr class="memdesc:a29ff9f3364b9ad0f25a990b8373971b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turns a type into a string.  <a href="#a29ff9f3364b9ad0f25a990b8373971b4">More...</a><br /></td></tr>
<tr class="separator:a29ff9f3364b9ad0f25a990b8373971b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9629143a0367909c7d5173453012335"><td class="memItemLeft" align="right" valign="top">boost::filesystem::path&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#af9629143a0367909c7d5173453012335">workspaceFromChildPath</a> (const boost::filesystem::path &amp;path)</td></tr>
<tr class="memdesc:af9629143a0367909c7d5173453012335"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the workspace directory from a child of the workspace directory Example: say you have a workspace at ~/chi/ If you used this with ~/chi/src/ it would return ~/chi/.  <a href="#af9629143a0367909c7d5173453012335">More...</a><br /></td></tr>
<tr class="separator:af9629143a0367909c7d5173453012335"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Function Validation</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Functions for making sure that generated functions are valid (also usable as a linter tools) </p>
</div></td></tr>
<tr class="memitem:acdc71d0d7f04f55316cc16af79b7f5b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#acdc71d0d7f04f55316cc16af79b7f5b1">validateFunction</a> (const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;func)</td></tr>
<tr class="memdesc:acdc71d0d7f04f55316cc16af79b7f5b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate that a function is compilable.  <a href="#acdc71d0d7f04f55316cc16af79b7f5b1">More...</a><br /></td></tr>
<tr class="separator:acdc71d0d7f04f55316cc16af79b7f5b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e66ba93ae2a152ebc13ec75a15b6e74"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a3e66ba93ae2a152ebc13ec75a15b6e74">validateFunctionConnectionsAreTwoWay</a> (const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;func)</td></tr>
<tr class="memdesc:a3e66ba93ae2a152ebc13ec75a15b6e74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make sure that connections connect back and that they have the same types.  <a href="#a3e66ba93ae2a152ebc13ec75a15b6e74">More...</a><br /></td></tr>
<tr class="separator:a3e66ba93ae2a152ebc13ec75a15b6e74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d84079ff2eef897472e3096589e62d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a0d84079ff2eef897472e3096589e62d7">validateFunctionNodeInputs</a> (const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;func)</td></tr>
<tr class="memdesc:a0d84079ff2eef897472e3096589e62d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make sure that nodes are called before their outputs are used.  <a href="#a0d84079ff2eef897472e3096589e62d7">More...</a><br /></td></tr>
<tr class="separator:a0d84079ff2eef897472e3096589e62d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae075e3bed58aaa6484e4b0e90872c19e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#ae075e3bed58aaa6484e4b0e90872c19e">validateFunctionExecOutputs</a> (const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;func)</td></tr>
<tr class="memdesc:ae075e3bed58aaa6484e4b0e90872c19e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make sure nodes have an output connection.  <a href="#ae075e3bed58aaa6484e4b0e90872c19e">More...</a><br /></td></tr>
<tr class="separator:ae075e3bed58aaa6484e4b0e90872c19e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad34490af81585a6e47a52e672ea33f01"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#ad34490af81585a6e47a52e672ea33f01">validateFunctionEntryType</a> (const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;func)</td></tr>
<tr class="memdesc:ad34490af81585a6e47a52e672ea33f01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make sure the function entry type aligns with the function type.  <a href="#ad34490af81585a6e47a52e672ea33f01">More...</a><br /></td></tr>
<tr class="separator:ad34490af81585a6e47a52e672ea33f01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af52d66c93c9e19da67c21bbb5747f5a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#af52d66c93c9e19da67c21bbb5747f5a4">validateFunctionExitTypes</a> (const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;func)</td></tr>
<tr class="memdesc:af52d66c93c9e19da67c21bbb5747f5a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make sure the function exit types align with the function type.  <a href="#af52d66c93c9e19da67c21bbb5747f5a4">More...</a><br /></td></tr>
<tr class="separator:af52d66c93c9e19da67c21bbb5747f5a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e8d6d34851f9df4edc4b82fedf424ce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a6e8d6d34851f9df4edc4b82fedf424ce">validateFunctionMainSignature</a> (const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;func)</td></tr>
<tr class="memdesc:a6e8d6d34851f9df4edc4b82fedf424ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make sure it's a valid signautre for a main function.  <a href="#a6e8d6d34851f9df4edc4b82fedf424ce">More...</a><br /></td></tr>
<tr class="separator:a6e8d6d34851f9df4edc4b82fedf424ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Json Serialization/Deserialization</div></td></tr>
<tr class="memitem:a4489e333fecc4168278e94f8b3f81e3c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a4489e333fecc4168278e94f8b3f81e3c">jsonToGraphModule</a> (<a class="el" href="structchi_1_1Context.html">Context</a> &amp;createInside, const nlohmann::json &amp;input, const boost::filesystem::path &amp;fullName, <a class="el" href="structchi_1_1GraphModule.html">GraphModule</a> **toFill=nullptr)</td></tr>
<tr class="memdesc:a4489e333fecc4168278e94f8b3f81e3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a <a class="el" href="structchi_1_1GraphModule.html" title="Module that holds graph functions. ">GraphModule</a> from json.  <a href="#a4489e333fecc4168278e94f8b3f81e3c">More...</a><br /></td></tr>
<tr class="separator:a4489e333fecc4168278e94f8b3f81e3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af483dab3c6b3b1ee261f223bd83d5670"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#af483dab3c6b3b1ee261f223bd83d5670">createGraphFunctionDeclarationFromJson</a> (<a class="el" href="structchi_1_1GraphModule.html">GraphModule</a> &amp;createInside, const nlohmann::json &amp;input, <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> **toFill=nullptr)</td></tr>
<tr class="memdesc:af483dab3c6b3b1ee261f223bd83d5670"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a forward declaration of a function in a module with an empty graph.  <a href="#af483dab3c6b3b1ee261f223bd83d5670">More...</a><br /></td></tr>
<tr class="separator:af483dab3c6b3b1ee261f223bd83d5670"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a3fedb48e6702c016f996d8a7f445fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a6a3fedb48e6702c016f996d8a7f445fc">jsonToGraphFunction</a> (<a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;createInside, const nlohmann::json &amp;input)</td></tr>
<tr class="memdesc:a6a3fedb48e6702c016f996d8a7f445fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a <a class="el" href="structchi_1_1GraphFunction.html" title="this is an AST-like representation of a function in a graph It is used for IDE-like behavior...">GraphFunction</a>&ndash;must already exist (use createGraphFunctionDeclarationFromJson)  <a href="#a6a3fedb48e6702c016f996d8a7f445fc">More...</a><br /></td></tr>
<tr class="separator:a6a3fedb48e6702c016f996d8a7f445fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a629f77832b6e7a6e0eaab123c4be1cda"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a629f77832b6e7a6e0eaab123c4be1cda">jsonToGraphStruct</a> (<a class="el" href="structchi_1_1GraphModule.html">GraphModule</a> &amp;mod, boost::string_view name, const nlohmann::json &amp;input, <a class="el" href="structchi_1_1GraphStruct.html">GraphStruct</a> **toFill=nullptr)</td></tr>
<tr class="memdesc:a629f77832b6e7a6e0eaab123c4be1cda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a <a class="el" href="structchi_1_1GraphStruct.html" title="A class holding a compound type defined in a GraphModule. ">GraphStruct</a> from json.  <a href="#a629f77832b6e7a6e0eaab123c4be1cda">More...</a><br /></td></tr>
<tr class="separator:a629f77832b6e7a6e0eaab123c4be1cda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b3839fa03d8bfb6ef3238543d44d865"><td class="memItemLeft" align="right" valign="top">std::pair&lt; std::string, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a2b3839fa03d8bfb6ef3238543d44d865">parseObjectPair</a> (const nlohmann::json &amp;object)</td></tr>
<tr class="memdesc:a2b3839fa03d8bfb6ef3238543d44d865"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse something that looks like: {"hello": "there"} into {"hello", "there"}.  <a href="#a2b3839fa03d8bfb6ef3238543d44d865">More...</a><br /></td></tr>
<tr class="separator:a2b3839fa03d8bfb6ef3238543d44d865"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd8b8d8a207d88359ad1e6a48d8f3bb1"><td class="memItemLeft" align="right" valign="top">nlohmann::json&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#afd8b8d8a207d88359ad1e6a48d8f3bb1">graphFunctionToJson</a> (const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;func)</td></tr>
<tr class="memdesc:afd8b8d8a207d88359ad1e6a48d8f3bb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serialize a <a class="el" href="structchi_1_1GraphFunction.html" title="this is an AST-like representation of a function in a graph It is used for IDE-like behavior...">GraphFunction</a> to json.  <a href="#afd8b8d8a207d88359ad1e6a48d8f3bb1">More...</a><br /></td></tr>
<tr class="separator:afd8b8d8a207d88359ad1e6a48d8f3bb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a4f3fa54c612f0c559a353bb7382d5a"><td class="memItemLeft" align="right" valign="top">nlohmann::json&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a9a4f3fa54c612f0c559a353bb7382d5a">graphModuleToJson</a> (const <a class="el" href="structchi_1_1GraphModule.html">GraphModule</a> &amp;mod)</td></tr>
<tr class="memdesc:a9a4f3fa54c612f0c559a353bb7382d5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serialize a JsonModule to json.  <a href="#a9a4f3fa54c612f0c559a353bb7382d5a">More...</a><br /></td></tr>
<tr class="separator:a9a4f3fa54c612f0c559a353bb7382d5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af74872167b12e4ad8a387faab1f03fbb"><td class="memItemLeft" align="right" valign="top">nlohmann::json&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#af74872167b12e4ad8a387faab1f03fbb">graphStructToJson</a> (const <a class="el" href="structchi_1_1GraphStruct.html">GraphStruct</a> &amp;struc)</td></tr>
<tr class="memdesc:af74872167b12e4ad8a387faab1f03fbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serialize a <a class="el" href="structchi_1_1GraphStruct.html" title="A class holding a compound type defined in a GraphModule. ">GraphStruct</a> to json.  <a href="#af74872167b12e4ad8a387faab1f03fbb">More...</a><br /></td></tr>
<tr class="separator:af74872167b12e4ad8a387faab1f03fbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Name Mangling</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Functions for mangling names into names used natively </p>
</div></td></tr>
<tr class="memitem:a44456c5ad1624ffdc805eb161eb948a1"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a44456c5ad1624ffdc805eb161eb948a1">mangleFunctionName</a> (std::string fullModuleName, const std::string &amp;name)</td></tr>
<tr class="memdesc:a44456c5ad1624ffdc805eb161eb948a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mangle a function name.  <a href="#a44456c5ad1624ffdc805eb161eb948a1">More...</a><br /></td></tr>
<tr class="separator:a44456c5ad1624ffdc805eb161eb948a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d6b6147c7af9c57c248816b5b1eb6dc"><td class="memItemLeft" align="right" valign="top">std::pair&lt; std::string, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a1d6b6147c7af9c57c248816b5b1eb6dc">unmangleFunctionName</a> (std::string mangled)</td></tr>
<tr class="memdesc:a1d6b6147c7af9c57c248816b5b1eb6dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unmangle a function name.  <a href="#a1d6b6147c7af9c57c248816b5b1eb6dc">More...</a><br /></td></tr>
<tr class="separator:a1d6b6147c7af9c57c248816b5b1eb6dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Connection Manipulation</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Functions for connecting and disconnecting nodes </p>
</div></td></tr>
<tr class="memitem:ab69b013712d615bf9901d7bf2b0b11fb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#ab69b013712d615bf9901d7bf2b0b11fb">connectData</a> (<a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;lhs, size_t lhsConnID, <a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;rhs, size_t rhsConnID)</td></tr>
<tr class="memdesc:ab69b013712d615bf9901d7bf2b0b11fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connects two nodes' data connections.  <a href="#ab69b013712d615bf9901d7bf2b0b11fb">More...</a><br /></td></tr>
<tr class="separator:ab69b013712d615bf9901d7bf2b0b11fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79423caa23a58e57b775c5137a03ee31"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a79423caa23a58e57b775c5137a03ee31">connectExec</a> (<a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;lhs, size_t lhsConnID, <a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;rhs, size_t rhsConnID)</td></tr>
<tr class="memdesc:a79423caa23a58e57b775c5137a03ee31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connects two nodes' exec connections.  <a href="#a79423caa23a58e57b775c5137a03ee31">More...</a><br /></td></tr>
<tr class="separator:a79423caa23a58e57b775c5137a03ee31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4694f9910cf90fd7c202fe117c4f257e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a4694f9910cf90fd7c202fe117c4f257e">disconnectData</a> (<a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;lhs, size_t lhsConnID, <a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;rhs)</td></tr>
<tr class="memdesc:a4694f9910cf90fd7c202fe117c4f257e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnect a data connection.  <a href="#a4694f9910cf90fd7c202fe117c4f257e">More...</a><br /></td></tr>
<tr class="separator:a4694f9910cf90fd7c202fe117c4f257e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a103b99abd766aa4d303a5004fe783c03"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a103b99abd766aa4d303a5004fe783c03">disconnectExec</a> (<a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;lhs, size_t lhsConnID)</td></tr>
<tr class="memdesc:a103b99abd766aa4d303a5004fe783c03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnect a exec connection.  <a href="#a103b99abd766aa4d303a5004fe783c03">More...</a><br /></td></tr>
<tr class="separator:a103b99abd766aa4d303a5004fe783c03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Standard include finder</div></td></tr>
<tr class="memitem:a2a10381635e0ce797c881880ae0adb55"><td class="memItemLeft" align="right" valign="top"><a id="a2a10381635e0ce797c881880ae0adb55"></a>
<a class="el" href="structchi_1_1Result.html">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacechi.html#a2a10381635e0ce797c881880ae0adb55">stdCIncludePaths</a> (std::vector&lt; boost::filesystem::path &gt; &amp;toFill)</td></tr>
<tr class="memdesc:a2a10381635e0ce797c881880ae0adb55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the location of the standard C library to include. <br /></td></tr>
<tr class="separator:a2a10381635e0ce797c881880ae0adb55"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The namespace where chigraph lives. </p>
</div><h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="a5ebe31b8bd52ced63520fbfd749e757f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ebe31b8bd52ced63520fbfd749e757f">&#9670;&nbsp;</a></span>CompileSettings</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="namespacechi.html#a5ebe31b8bd52ced63520fbfd749e757f">chi::CompileSettings</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Settings for compiling modules. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a5ebe31b8bd52ced63520fbfd749e757fadcd9e587bf9e3e50e28d85f642306d33"></a>UseCache&#160;</td><td class="fielddoc"><p>Use the cache in lib. </p>
</td></tr>
<tr><td class="fieldname"><a id="a5ebe31b8bd52ced63520fbfd749e757fa4f2978dbcab4d04e98b1a567eae27604"></a>LinkDependencies&#160;</td><td class="fielddoc"><p>Link in dependencies If this is set, it will be a ready to run module If not, it'll contain forward declarations for dependencies and full definitons For functions in that module. </p>
</td></tr>
<tr><td class="fieldname"><a id="a5ebe31b8bd52ced63520fbfd749e757fa7a1920d61156abc05a60135aefe8bc67"></a>Default&#160;</td><td class="fielddoc"><p>Default, which is both. </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="Context_8hpp_source.html#l00026">26</a> of file <a class="el" href="Context_8hpp_source.html">Context.hpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="af2fbd3aba94ecac3f7b70548da25f4ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2fbd3aba94ecac3f7b70548da25f4ee">&#9670;&nbsp;</a></span>compileCToLLVM()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::compileCToLLVM </td>
          <td>(</td>
          <td class="paramtype">const boost::filesystem::path &amp;&#160;</td>
          <td class="paramname"><em>ctollvmPath</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">llvm::LLVMContext &amp;&#160;</td>
          <td class="paramname"><em>llvmContext</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; std::string &gt;&#160;</td>
          <td class="paramname"><em>arguments</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">boost::string_view&#160;</td>
          <td class="paramname"><em>inputCCode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::unique_ptr&lt; llvm::Module &gt; *&#160;</td>
          <td class="paramname"><em>toFill</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Use chi-ctollvm to compile C source code to a llvm module It also uses <code>stdCIncludePaths</code> to find basic include paths. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ctollvmPath</td><td>The path to the <code>chi-ctollvm</code> executable. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">llvmContext</td><td>The LLVM context to create the module into </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arguments</td><td>The arguments to clang. Can include input files if desired. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">inputCCode</td><td>The C code to compile. If <code>arguments</code> contains input files, then this can be empty. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">toFill</td><td>The unique pointer module to create the module inside </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structchi_1_1Result.html" title="The result object, used for identifiying errors with good diagnostics. ">Result</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="CCompiler_8cpp_source.html#l00017">17</a> of file <a class="el" href="CCompiler_8cpp_source.html">CCompiler.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>, <a class="el" href="Result_8hpp_source.html#l00123">chi::Result::addScopedContext()</a>, <a class="el" href="Subprocess_8hpp_source.html#l00146">chi::Subprocess::attachStringToStdErr()</a>, <a class="el" href="Subprocess_8hpp_source.html#l00135">chi::Subprocess::attachStringToStdOut()</a>, <a class="el" href="Subprocess_8cpp_source.html#l00388">chi::Subprocess::closeStdIn()</a>, <a class="el" href="Subprocess_8cpp_source.html#l00534">chi::Subprocess::exitCode()</a>, <a class="el" href="Subprocess_8cpp_source.html#l00374">chi::Subprocess::pushToStdIn()</a>, <a class="el" href="Subprocess_8hpp_source.html#l00075">chi::Subprocess::setArguments()</a>, <a class="el" href="Subprocess_8cpp_source.html#l00405">chi::Subprocess::start()</a>, and <a class="el" href="namespacechi.html#a2a10381635e0ce797c881880ae0adb55">stdCIncludePaths()</a>.</p>

<p class="reference">Referenced by <a class="el" href="GraphModule_8cpp_source.html#l00866">chi::GraphModule::createNodeTypeFromCCode()</a>, and <a class="el" href="GraphModule_8cpp_source.html#l00435">chi::GraphModule::generateModule()</a>.</p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_af2fbd3aba94ecac3f7b70548da25f4ee_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-1-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_af2fbd3aba94ecac3f7b70548da25f4ee_icgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a8329038fce8125396cc9775460aa427b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8329038fce8125396cc9775460aa427b">&#9670;&nbsp;</a></span>compileFunction()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::compileFunction </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">llvm::Module *&#160;</td>
          <td class="paramname"><em>mod</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">llvm::DICompileUnit *&#160;</td>
          <td class="paramname"><em>debugCU</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">llvm::DIBuilder &amp;&#160;</td>
          <td class="paramname"><em>debugBuilder</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compile the graph to an <code>llvm::Function</code> (usually called from JsonModule::generateModule) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>The function to compile </td></tr>
    <tr><td class="paramname">mod</td><td>The module to codgen into, should already be a valid module </td></tr>
    <tr><td class="paramname">debugCU</td><td>The compilation unit that the <a class="el" href="structchi_1_1GraphFunction.html" title="this is an AST-like representation of a function in a graph It is used for IDE-like behavior...">GraphFunction</a> resides in. </td></tr>
    <tr><td class="paramname">debugBuilder</td><td>The debug builder to build debug info </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result </dd></dl>

<p class="definition">Definition at line <a class="el" href="FunctionCompiler_8cpp_source.html#l00371">371</a> of file <a class="el" href="FunctionCompiler_8cpp_source.html">FunctionCompiler.cpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="FunctionCompiler_8hpp_source.html#l00148">chi::FunctionCompiler::compiled()</a>.</p>
<div id="dynsection-2" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-2-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-2-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-2-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_a8329038fce8125396cc9775460aa427b_icgraph.svg" width="546" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="ab69b013712d615bf9901d7bf2b0b11fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab69b013712d615bf9901d7bf2b0b11fb">&#9670;&nbsp;</a></span>connectData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::connectData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>lhsConnID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>rhsConnID</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Connects two nodes' data connections. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">lhs</td><td>The node to the left, the node outputting the data </td></tr>
    <tr><td class="paramname">lhsConnID</td><td>The ID of data connection in <code>lhs</code> to be connected </td></tr>
    <tr><td class="paramname">rhs</td><td>The node to the right, that takes in the data as a parameter </td></tr>
    <tr><td class="paramname">rhsConnID</td><td>The ID of data input in <code>rhs</code> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section pre"><dt>Precondition</dt><dd><code>lhs.function() == rhs.connection()</code> </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>The result </dd></dl>

<p class="definition">Definition at line <a class="el" href="NodeInstance_8cpp_source.html#l00128">128</a> of file <a class="el" href="NodeInstance_8cpp_source.html">NodeInstance.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>, <a class="el" href="NodeType_8hpp_source.html#l00073">chi::NodeType::dataInputs()</a>, <a class="el" href="NodeType_8hpp_source.html#l00076">chi::NodeType::dataOutputs()</a>, <a class="el" href="NodeInstance_8cpp_source.html#l00229">disconnectData()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00091">chi::NodeInstance::function()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00077">chi::NodeInstance::inputDataConnections</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00095">chi::NodeInstance::module()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00083">chi::NodeInstance::outputDataConnections</a>, <a class="el" href="NodeType_8cpp_source.html#l00017">chi::NodeType::qualifiedName()</a>, <a class="el" href="NodeType_8hpp_source.html#l00054">chi::NodeType::toJSON()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00046">chi::NodeInstance::type()</a>, and <a class="el" href="ChiModule_8hpp_source.html#l00105">chi::ChiModule::updateLastEditTime()</a>.</p>

<p class="reference">Referenced by <a class="el" href="JsonDeserializer_8cpp_source.html#l00232">jsonToGraphFunction()</a>, and <a class="el" href="NodeInstance_8hpp_source.html#l00095">chi::NodeInstance::module()</a>.</p>
<div id="dynsection-3" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-3-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-3-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-3-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_ab69b013712d615bf9901d7bf2b0b11fb_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-4" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-4-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-4-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-4-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_ab69b013712d615bf9901d7bf2b0b11fb_icgraph.svg" width="100%" height="582"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a79423caa23a58e57b775c5137a03ee31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79423caa23a58e57b775c5137a03ee31">&#9670;&nbsp;</a></span>connectExec()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::connectExec </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>lhsConnID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>rhsConnID</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Connects two nodes' exec connections. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">lhs</td><td>The node to the left, the node outputting the connections </td></tr>
    <tr><td class="paramname">lhsConnID</td><td>The ID of exec connection in <code>lhs</code> to be connected </td></tr>
    <tr><td class="paramname">rhs</td><td>The node to the right, that takes in the exec as a parameter </td></tr>
    <tr><td class="paramname">rhsConnID</td><td>The ID of exec input in <code>rhs</code> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section pre"><dt>Precondition</dt><dd><code>lhs.function() == rhs.connection()</code> </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>The result </dd></dl>

<p class="definition">Definition at line <a class="el" href="NodeInstance_8cpp_source.html#l00186">186</a> of file <a class="el" href="NodeInstance_8cpp_source.html">NodeInstance.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>, <a class="el" href="NodeInstance_8cpp_source.html#l00294">disconnectExec()</a>, <a class="el" href="NodeType_8hpp_source.html#l00079">chi::NodeType::execInputs()</a>, <a class="el" href="NodeType_8hpp_source.html#l00082">chi::NodeType::execOutputs()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00091">chi::NodeInstance::function()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00074">chi::NodeInstance::inputExecConnections</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00095">chi::NodeInstance::module()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00080">chi::NodeInstance::outputExecConnections</a>, <a class="el" href="NodeType_8cpp_source.html#l00017">chi::NodeType::qualifiedName()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00046">chi::NodeInstance::type()</a>, and <a class="el" href="ChiModule_8hpp_source.html#l00105">chi::ChiModule::updateLastEditTime()</a>.</p>

<p class="reference">Referenced by <a class="el" href="JsonDeserializer_8cpp_source.html#l00232">jsonToGraphFunction()</a>, and <a class="el" href="NodeInstance_8hpp_source.html#l00095">chi::NodeInstance::module()</a>.</p>
<div id="dynsection-5" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-5-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-5-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-5-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a79423caa23a58e57b775c5137a03ee31_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-6" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-6-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-6-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-6-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a79423caa23a58e57b775c5137a03ee31_icgraph.svg" width="100%" height="582"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="af483dab3c6b3b1ee261f223bd83d5670"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af483dab3c6b3b1ee261f223bd83d5670">&#9670;&nbsp;</a></span>createGraphFunctionDeclarationFromJson()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::createGraphFunctionDeclarationFromJson </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structchi_1_1GraphModule.html">GraphModule</a> &amp;&#160;</td>
          <td class="paramname"><em>createInside</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const nlohmann::json &amp;&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> **&#160;</td>
          <td class="paramname"><em>toFill</em> = <code>nullptr</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a forward declaration of a function in a module with an empty graph. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">createInside</td><td>the <a class="el" href="structchi_1_1GraphModule.html" title="Module that holds graph functions. ">GraphModule</a> to create the forward declaration in </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>The input JSON </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">toFill</td><td>The GraphFunction* to fill, optional </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structchi_1_1Result.html" title="The result object, used for identifiying errors with good diagnostics. ">Result</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="JsonDeserializer_8cpp_source.html#l00121">121</a> of file <a class="el" href="JsonDeserializer_8cpp_source.html">JsonDeserializer.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>, <a class="el" href="ChiModule_8hpp_source.html#l00068">chi::ChiModule::context()</a>, <a class="el" href="ChiModule_8hpp_source.html#l00061">chi::ChiModule::fullName()</a>, <a class="el" href="GraphModule_8cpp_source.html#l00545">chi::GraphModule::getOrCreateFunction()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00355">parseColonPair()</a>, <a class="el" href="JsonDeserializer_8cpp_source.html#l00491">parseObjectPair()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00299">chi::GraphFunction::setDescription()</a>, and <a class="el" href="Context_8cpp_source.html#l00232">chi::Context::typeFromModule()</a>.</p>

<p class="reference">Referenced by <a class="el" href="JsonDeserializer_8cpp_source.html#l00014">jsonToGraphModule()</a>.</p>
<div id="dynsection-7" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-7-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-7-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-7-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_af483dab3c6b3b1ee261f223bd83d5670_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-8" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-8-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-8-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-8-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_af483dab3c6b3b1ee261f223bd83d5670_icgraph.svg" width="100%" height="385"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a00be19cc8464681f474ecbcd27abe13c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00be19cc8464681f474ecbcd27abe13c">&#9670;&nbsp;</a></span>dependentPuresRecursive()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; <a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> * &gt; chi::dependentPuresRecursive </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;&#160;</td>
          <td class="paramname"><em>inst</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the pures a <a class="el" href="structchi_1_1NodeInstance.html" title="An instance of a node. ">NodeInstance</a> relies on These are all the dependent pures (it's fetched recursively) They are in the order of dependency, for examply if node X depends on node Y, then node Y will come before node X. </p>
<dl class="section warning"><dt>Warning</dt><dd>Recursive based on how many pures are in a chain. Cyclic pure dependencies will crash. TODO: make sure they don't crash, and issue a nice error </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">inst</td><td>The <a class="el" href="structchi_1_1NodeInstance.html" title="An instance of a node. ">NodeInstance</a> to get the dependent pures for </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>All the directly dependent pures </dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>all the elements in the return are pure </dd></dl>

<p class="definition">Definition at line <a class="el" href="NodeCompiler_8cpp_source.html#l00244">244</a> of file <a class="el" href="NodeCompiler_8cpp_source.html">NodeCompiler.cpp</a>.</p>

<p class="reference">References <a class="el" href="NodeInstance_8hpp_source.html#l00077">chi::NodeInstance::inputDataConnections</a>.</p>

<p class="reference">Referenced by <a class="el" href="FunctionCompiler_8cpp_source.html#l00198">chi::FunctionCompiler::compile()</a>, <a class="el" href="NodeCompiler_8cpp_source.html#l00091">chi::NodeCompiler::compile_stage1()</a>, and <a class="el" href="NodeCompiler_8hpp_source.html#l00110">chi::NodeCompiler::jumpBackInst()</a>.</p>
<div id="dynsection-9" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-9-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-9-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-9-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a00be19cc8464681f474ecbcd27abe13c_icgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a4694f9910cf90fd7c202fe117c4f257e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4694f9910cf90fd7c202fe117c4f257e">&#9670;&nbsp;</a></span>disconnectData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::disconnectData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>lhsConnID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Disconnect a data connection. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">lhs</td><td>The left hand node </td></tr>
    <tr><td class="paramname">lhsConnID</td><td>The ID of the data connection to disconnect </td></tr>
    <tr><td class="paramname">rhs</td><td>The node that the data port is connected to </td></tr>
  </table>
  </dd>
</dl>
<dl class="section pre"><dt>Precondition</dt><dd><code>lhs.function() == rhs.connection()</code> </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>The result </dd></dl>

<p class="definition">Definition at line <a class="el" href="NodeInstance_8cpp_source.html#l00229">229</a> of file <a class="el" href="NodeInstance_8cpp_source.html">NodeInstance.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>, <a class="el" href="NodeType_8hpp_source.html#l00073">chi::NodeType::dataInputs()</a>, <a class="el" href="NodeType_8hpp_source.html#l00076">chi::NodeType::dataOutputs()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00091">chi::NodeInstance::function()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00077">chi::NodeInstance::inputDataConnections</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00095">chi::NodeInstance::module()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00083">chi::NodeInstance::outputDataConnections</a>, <a class="el" href="NodeType_8cpp_source.html#l00017">chi::NodeType::qualifiedName()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00068">chi::NodeInstance::stringId()</a>, <a class="el" href="NodeType_8hpp_source.html#l00054">chi::NodeType::toJSON()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00046">chi::NodeInstance::type()</a>, and <a class="el" href="ChiModule_8hpp_source.html#l00105">chi::ChiModule::updateLastEditTime()</a>.</p>

<p class="reference">Referenced by <a class="el" href="NodeInstance_8cpp_source.html#l00128">connectData()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00095">chi::NodeInstance::module()</a>, <a class="el" href="GraphFunction_8cpp_source.html#l00114">chi::GraphFunction::removeNode()</a>, and <a class="el" href="NodeInstance_8cpp_source.html#l00056">chi::NodeInstance::setType()</a>.</p>
<div id="dynsection-10" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-10-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-10-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-10-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a4694f9910cf90fd7c202fe117c4f257e_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-11" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-11-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-11-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-11-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a4694f9910cf90fd7c202fe117c4f257e_icgraph.svg" width="100%" height="590"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a103b99abd766aa4d303a5004fe783c03"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a103b99abd766aa4d303a5004fe783c03">&#9670;&nbsp;</a></span>disconnectExec()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::disconnectExec </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>lhsConnID</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Disconnect a exec connection. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">lhs</td><td>The left hand node in the connection </td></tr>
    <tr><td class="paramname">lhsConnID</td><td>The ID of the connection on lhs </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result </dd></dl>

<p class="definition">Definition at line <a class="el" href="NodeInstance_8cpp_source.html#l00294">294</a> of file <a class="el" href="NodeInstance_8cpp_source.html">NodeInstance.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>, <a class="el" href="NodeType_8hpp_source.html#l00082">chi::NodeType::execOutputs()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00095">chi::NodeInstance::module()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00080">chi::NodeInstance::outputExecConnections</a>, <a class="el" href="NodeType_8cpp_source.html#l00017">chi::NodeType::qualifiedName()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00068">chi::NodeInstance::stringId()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00046">chi::NodeInstance::type()</a>, and <a class="el" href="ChiModule_8hpp_source.html#l00105">chi::ChiModule::updateLastEditTime()</a>.</p>

<p class="reference">Referenced by <a class="el" href="NodeInstance_8cpp_source.html#l00186">connectExec()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00095">chi::NodeInstance::module()</a>, <a class="el" href="GraphFunction_8cpp_source.html#l00114">chi::GraphFunction::removeNode()</a>, and <a class="el" href="NodeInstance_8cpp_source.html#l00056">chi::NodeInstance::setType()</a>.</p>
<div id="dynsection-12" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-12-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-12-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-12-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a103b99abd766aa4d303a5004fe783c03_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-13" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-13-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-13-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-13-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a103b99abd766aa4d303a5004fe783c03_icgraph.svg" width="100%" height="590"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a895c4e199040694ef0c5984afa80af79"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a895c4e199040694ef0c5984afa80af79">&#9670;&nbsp;</a></span>executablePath()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::filesystem::path chi::executablePath </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the path of the executable. </p>
<dl class="section return"><dt>Returns</dt><dd>The exectuable path </dd></dl>

<p class="reference">Referenced by <a class="el" href="Context_8cpp_source.html#l00298">chi::Context::compileModule()</a>.</p>
<div id="dynsection-14" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-14-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-14-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-14-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_a895c4e199040694ef0c5984afa80af79_icgraph.svg" width="383" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a3cb9bd41eebfa97c5819f48e176aa63d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3cb9bd41eebfa97c5819f48e176aa63d">&#9670;&nbsp;</a></span>fetchModule()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::fetchModule </td>
          <td>(</td>
          <td class="paramtype">const boost::filesystem::path &amp;&#160;</td>
          <td class="paramname"><em>workspacePath</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const boost::filesystem::path &amp;&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>recursive</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Downloads a module from a remote URL, currently supports. </p>
<ul>
<li>github <dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">workspacePath</td><td>The path to the workspace </td></tr>
  </table>
  </dd>
</dl>
<dl class="section pre"><dt>Precondition</dt><dd><code>fs::is_regular_file(workspacePath / ".chigraphworkspace")</code> </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>The name of the module to fetch </td></tr>
    <tr><td class="paramname">recursive</td><td>Should all dependencies be cloned as well? </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structchi_1_1Result.html" title="The result object, used for identifiying errors with good diagnostics. ">Result</a> </dd></dl>
</li>
</ul>

</div>
</div>
<a id="afd8b8d8a207d88359ad1e6a48d8f3bb1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd8b8d8a207d88359ad1e6a48d8f3bb1">&#9670;&nbsp;</a></span>graphFunctionToJson()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">nlohmann::json chi::graphFunctionToJson </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;&#160;</td>
          <td class="paramname"><em>func</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Serialize a <a class="el" href="structchi_1_1GraphFunction.html" title="this is an AST-like representation of a function in a graph It is used for IDE-like behavior...">GraphFunction</a> to json. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>The function to serialize </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The serialized function </dd></dl>

<p class="definition">Definition at line <a class="el" href="JsonSerializer_8cpp_source.html#l00015">15</a> of file <a class="el" href="JsonSerializer_8cpp_source.html">JsonSerializer.cpp</a>.</p>

<p class="reference">References <a class="el" href="GraphFunction_8hpp_source.html#l00145">chi::GraphFunction::dataInputs()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00180">chi::GraphFunction::dataOutputs()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00303">chi::GraphFunction::description()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00216">chi::GraphFunction::execInputs()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00241">chi::GraphFunction::execOutputs()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00265">chi::GraphFunction::localVariables()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00313">chi::GraphFunction::name()</a>, and <a class="el" href="GraphFunction_8hpp_source.html#l00051">chi::GraphFunction::nodes()</a>.</p>

<p class="reference">Referenced by <a class="el" href="JsonSerializer_8cpp_source.html#l00097">graphModuleToJson()</a>.</p>
<div id="dynsection-15" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-15-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-15-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-15-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_afd8b8d8a207d88359ad1e6a48d8f3bb1_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-16" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-16-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-16-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-16-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_afd8b8d8a207d88359ad1e6a48d8f3bb1_icgraph.svg" width="644" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a9a4f3fa54c612f0c559a353bb7382d5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a4f3fa54c612f0c559a353bb7382d5a">&#9670;&nbsp;</a></span>graphModuleToJson()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">nlohmann::json chi::graphModuleToJson </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structchi_1_1GraphModule.html">GraphModule</a> &amp;&#160;</td>
          <td class="paramname"><em>mod</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Serialize a JsonModule to json. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mod</td><td>The module to serialize </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The serialized module </dd></dl>

<p class="definition">Definition at line <a class="el" href="JsonSerializer_8cpp_source.html#l00097">97</a> of file <a class="el" href="JsonSerializer_8cpp_source.html">JsonSerializer.cpp</a>.</p>

<p class="reference">References <a class="el" href="GraphModule_8hpp_source.html#l00136">chi::GraphModule::cEnabled()</a>, <a class="el" href="ChiModule_8hpp_source.html#l00083">chi::ChiModule::dependencies()</a>, <a class="el" href="GraphModule_8hpp_source.html#l00095">chi::GraphModule::functions()</a>, <a class="el" href="JsonSerializer_8cpp_source.html#l00015">graphFunctionToJson()</a>, and <a class="el" href="JsonSerializer_8cpp_source.html#l00117">graphStructToJson()</a>.</p>

<p class="reference">Referenced by <a class="el" href="GraphModule_8cpp_source.html#l00514">chi::GraphModule::saveToDisk()</a>.</p>
<div id="dynsection-17" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-17-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-17-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-17-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a9a4f3fa54c612f0c559a353bb7382d5a_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-18" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-18-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-18-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-18-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_a9a4f3fa54c612f0c559a353bb7382d5a_icgraph.svg" width="424" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="af74872167b12e4ad8a387faab1f03fbb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af74872167b12e4ad8a387faab1f03fbb">&#9670;&nbsp;</a></span>graphStructToJson()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">nlohmann::json chi::graphStructToJson </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structchi_1_1GraphStruct.html">GraphStruct</a> &amp;&#160;</td>
          <td class="paramname"><em>struc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Serialize a <a class="el" href="structchi_1_1GraphStruct.html" title="A class holding a compound type defined in a GraphModule. ">GraphStruct</a> to json. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">struc</td><td>The struct to serialize </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The serialized struct </dd></dl>

<p class="definition">Definition at line <a class="el" href="JsonSerializer_8cpp_source.html#l00117">117</a> of file <a class="el" href="JsonSerializer_8cpp_source.html">JsonSerializer.cpp</a>.</p>

<p class="reference">References <a class="el" href="GraphStruct_8hpp_source.html#l00047">chi::GraphStruct::types()</a>.</p>

<p class="reference">Referenced by <a class="el" href="JsonSerializer_8cpp_source.html#l00097">graphModuleToJson()</a>.</p>
<div id="dynsection-19" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-19-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-19-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-19-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_af74872167b12e4ad8a387faab1f03fbb_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-20" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-20-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-20-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-20-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_af74872167b12e4ad8a387faab1f03fbb_icgraph.svg" width="630" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a0fd66f4db0dbade845553826bd971190"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0fd66f4db0dbade845553826bd971190">&#9670;&nbsp;</a></span>interpretLLVMIR()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::interpretLLVMIR </td>
          <td>(</td>
          <td class="paramtype">std::unique_ptr&lt; llvm::Module &gt;&#160;</td>
          <td class="paramname"><em>mod</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">llvm::CodeGenOpt::Level&#160;</td>
          <td class="paramname"><em>optLevel</em> = <code>llvm::CodeGenOpt::Default</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; llvm::GenericValue &gt; &amp;&#160;</td>
          <td class="paramname"><em>args</em> = <code>{}</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">llvm::Function *&#160;</td>
          <td class="paramname"><em>funcToRun</em> = <code>nullptr</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">llvm::GenericValue *&#160;</td>
          <td class="paramname"><em>ret</em> = <code>nullptr</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Interpret LLVM IR, just a convenience function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">mod</td><td>The LLVM Module to interpret </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">optLevel</td><td>How much the optimization should be applied. The default is roughly equilivant to -O2 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">args</td><td>The arguments to pass to the function, empty by default </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">funcToRun</td><td>The function to run. By default it uses "main". </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">ret</td><td>The <code>GenericValue</code> to fill with the result of the function. Optional </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structchi_1_1Result.html" title="The result object, used for identifiying errors with good diagnostics. ">Result</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="Context_8cpp_source.html#l00528">528</a> of file <a class="el" href="Context_8cpp_source.html">Context.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>.</p>

<p class="reference">Referenced by <a class="el" href="Context_8hpp_source.html#l00194">chi::Context::moduleCache()</a>.</p>
<div id="dynsection-21" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-21-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-21-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-21-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_a0fd66f4db0dbade845553826bd971190_cgraph.svg" width="555" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
<div id="dynsection-22" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-22-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-22-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-22-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_a0fd66f4db0dbade845553826bd971190_icgraph.svg" width="379" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a33d2592c56c0b169c44b14332e80db44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33d2592c56c0b169c44b14332e80db44">&#9670;&nbsp;</a></span>interpretLLVMIRAsMain()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::interpretLLVMIRAsMain </td>
          <td>(</td>
          <td class="paramtype">std::unique_ptr&lt; llvm::Module &gt;&#160;</td>
          <td class="paramname"><em>mod</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">llvm::CodeGenOpt::Level&#160;</td>
          <td class="paramname"><em>optLevel</em> = <code>llvm::CodeGenOpt::Default</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; std::string &gt; &amp;&#160;</td>
          <td class="paramname"><em>args</em> = <code>{}</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">llvm::Function *&#160;</td>
          <td class="paramname"><em>funcToRun</em> = <code>nullptr</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>ret</em> = <code>nullptr</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Interpret LLVM IR as if it were the main function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">mod</td><td>The module to interpret </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">optLevel</td><td>The optimization level </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">args</td><td>The arguments to main </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">funcToRun</td><td>The function, defaults to "main" from <code>mod</code> </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">ret</td><td>The return from main. Optional. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structchi_1_1Result.html" title="The result object, used for identifiying errors with good diagnostics. ">Result</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="Context_8cpp_source.html#l00564">564</a> of file <a class="el" href="Context_8cpp_source.html">Context.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>.</p>

<p class="reference">Referenced by <a class="el" href="Context_8hpp_source.html#l00194">chi::Context::moduleCache()</a>.</p>
<div id="dynsection-23" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-23-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-23-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-23-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_a33d2592c56c0b169c44b14332e80db44_cgraph.svg" width="599" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
<div id="dynsection-24" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-24-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-24-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-24-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_a33d2592c56c0b169c44b14332e80db44_icgraph.svg" width="423" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a6a3fedb48e6702c016f996d8a7f445fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a3fedb48e6702c016f996d8a7f445fc">&#9670;&nbsp;</a></span>jsonToGraphFunction()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::jsonToGraphFunction </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;&#160;</td>
          <td class="paramname"><em>createInside</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const nlohmann::json &amp;&#160;</td>
          <td class="paramname"><em>input</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load a <a class="el" href="structchi_1_1GraphFunction.html" title="this is an AST-like representation of a function in a graph It is used for IDE-like behavior...">GraphFunction</a>&ndash;must already exist (use createGraphFunctionDeclarationFromJson) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">createInside</td><td>The <a class="el" href="structchi_1_1GraphFunction.html" title="this is an AST-like representation of a function in a graph It is used for IDE-like behavior...">GraphFunction</a> to create the graph for </td></tr>
    <tr><td class="paramname">input</td><td>The JSON to load </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structchi_1_1Result.html" title="The result object, used for identifiying errors with good diagnostics. ">Result</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="JsonDeserializer_8cpp_source.html#l00232">232</a> of file <a class="el" href="JsonDeserializer_8cpp_source.html">JsonDeserializer.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>, <a class="el" href="NodeInstance_8cpp_source.html#l00128">connectData()</a>, <a class="el" href="NodeInstance_8cpp_source.html#l00186">connectExec()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00310">chi::GraphFunction::context()</a>, <a class="el" href="GraphFunction_8cpp_source.html#l00387">chi::GraphFunction::getOrCreateLocalVariable()</a>, <a class="el" href="GraphFunction_8cpp_source.html#l00064">chi::GraphFunction::insertNode()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00051">chi::GraphFunction::nodes()</a>, <a class="el" href="Context_8cpp_source.html#l00253">chi::Context::nodeTypeFromModule()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00355">parseColonPair()</a>, and <a class="el" href="Context_8cpp_source.html#l00232">chi::Context::typeFromModule()</a>.</p>

<p class="reference">Referenced by <a class="el" href="JsonDeserializer_8cpp_source.html#l00014">jsonToGraphModule()</a>.</p>
<div id="dynsection-25" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-25-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-25-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-25-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a6a3fedb48e6702c016f996d8a7f445fc_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-26" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-26-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-26-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-26-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a6a3fedb48e6702c016f996d8a7f445fc_icgraph.svg" width="100%" height="385"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a4489e333fecc4168278e94f8b3f81e3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4489e333fecc4168278e94f8b3f81e3c">&#9670;&nbsp;</a></span>jsonToGraphModule()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::jsonToGraphModule </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structchi_1_1Context.html">Context</a> &amp;&#160;</td>
          <td class="paramname"><em>createInside</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const nlohmann::json &amp;&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const boost::filesystem::path &amp;&#160;</td>
          <td class="paramname"><em>fullName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structchi_1_1GraphModule.html">GraphModule</a> **&#160;</td>
          <td class="paramname"><em>toFill</em> = <code>nullptr</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load a <a class="el" href="structchi_1_1GraphModule.html" title="Module that holds graph functions. ">GraphModule</a> from json. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">createInside</td><td>The <a class="el" href="structchi_1_1Context.html" title="The class that handles the loading, creation, storing, and compilation of modules It also stores a LL...">Context</a> to create the module in </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>The JSON to load </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fullName</td><td>The full name of the module being loaded </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">toFill</td><td>The GraphModule* to set, optional </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structchi_1_1Result.html" title="The result object, used for identifiying errors with good diagnostics. ">Result</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="JsonDeserializer_8cpp_source.html#l00014">14</a> of file <a class="el" href="JsonDeserializer_8cpp_source.html">JsonDeserializer.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>, <a class="el" href="Result_8hpp_source.html#l00123">chi::Result::addScopedContext()</a>, <a class="el" href="JsonDeserializer_8cpp_source.html#l00121">createGraphFunctionDeclarationFromJson()</a>, <a class="el" href="JsonDeserializer_8cpp_source.html#l00232">jsonToGraphFunction()</a>, <a class="el" href="JsonDeserializer_8cpp_source.html#l00450">jsonToGraphStruct()</a>, <a class="el" href="Context_8cpp_source.html#l00055">chi::Context::newGraphModule()</a>, and <a class="el" href="Context_8hpp_source.html#l00138">chi::Context::workspacePath()</a>.</p>

<p class="reference">Referenced by <a class="el" href="Context_8cpp_source.html#l00156">chi::Context::addModuleFromJson()</a>.</p>
<div id="dynsection-27" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-27-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-27-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-27-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a4489e333fecc4168278e94f8b3f81e3c_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-28" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-28-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-28-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-28-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a4489e333fecc4168278e94f8b3f81e3c_icgraph.svg" width="100%" height="385"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a629f77832b6e7a6e0eaab123c4be1cda"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a629f77832b6e7a6e0eaab123c4be1cda">&#9670;&nbsp;</a></span>jsonToGraphStruct()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::jsonToGraphStruct </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structchi_1_1GraphModule.html">GraphModule</a> &amp;&#160;</td>
          <td class="paramname"><em>mod</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">boost::string_view&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const nlohmann::json &amp;&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structchi_1_1GraphStruct.html">GraphStruct</a> **&#160;</td>
          <td class="paramname"><em>toFill</em> = <code>nullptr</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load a <a class="el" href="structchi_1_1GraphStruct.html" title="A class holding a compound type defined in a GraphModule. ">GraphStruct</a> from json. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">mod</td><td>The module to create it inside </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the <code><a class="el" href="structchi_1_1GraphStruct.html" title="A class holding a compound type defined in a GraphModule. ">GraphStruct</a></code> to create </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>The JSON to load </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">toFill</td><td>The object to fill, optional </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structchi_1_1Result.html" title="The result object, used for identifiying errors with good diagnostics. ">Result</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="JsonDeserializer_8cpp_source.html#l00450">450</a> of file <a class="el" href="JsonDeserializer_8cpp_source.html">JsonDeserializer.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>, <a class="el" href="ChiModule_8hpp_source.html#l00068">chi::ChiModule::context()</a>, <a class="el" href="GraphModule_8cpp_source.html#l00824">chi::GraphModule::getOrCreateStruct()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00355">parseColonPair()</a>, <a class="el" href="JsonDeserializer_8cpp_source.html#l00491">parseObjectPair()</a>, and <a class="el" href="Context_8cpp_source.html#l00232">chi::Context::typeFromModule()</a>.</p>

<p class="reference">Referenced by <a class="el" href="JsonDeserializer_8cpp_source.html#l00014">jsonToGraphModule()</a>.</p>
<div id="dynsection-29" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-29-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-29-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-29-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a629f77832b6e7a6e0eaab123c4be1cda_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-30" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-30-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-30-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-30-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a629f77832b6e7a6e0eaab123c4be1cda_icgraph.svg" width="100%" height="385"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a46ba4fa933baeba58beefc9e573b0668"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46ba4fa933baeba58beefc9e573b0668">&#9670;&nbsp;</a></span>lineNumberFromNode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned chi::lineNumberFromNode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structchi_1_1NodeInstance.html">NodeInstance</a> &amp;&#160;</td>
          <td class="paramname"><em>inst</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the mapped line number from a node. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">inst</td><td>The instance to get the line number for </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The line number </dd></dl>

<p class="definition">Definition at line <a class="el" href="Debugger_8cpp_source.html#l00282">282</a> of file <a class="el" href="Debugger_8cpp_source.html">Debugger.cpp</a>.</p>

<p class="reference">References <a class="el" href="GraphModule_8cpp_source.html#l00794">chi::GraphModule::createLineNumberAssoc()</a>, and <a class="el" href="NodeInstance_8hpp_source.html#l00095">chi::NodeInstance::module()</a>.</p>

<p class="reference">Referenced by <a class="el" href="Debugger_8hpp_source.html#l00126">chi::Debugger::lldbDebugger()</a>, and <a class="el" href="Debugger_8cpp_source.html#l00110">chi::Debugger::setBreakpoint()</a>.</p>
<div id="dynsection-31" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-31-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-31-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-31-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a46ba4fa933baeba58beefc9e573b0668_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-32" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-32-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-32-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-32-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_a46ba4fa933baeba58beefc9e573b0668_icgraph.svg" width="622" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a44456c5ad1624ffdc805eb161eb948a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44456c5ad1624ffdc805eb161eb948a1">&#9670;&nbsp;</a></span>mangleFunctionName()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string chi::mangleFunctionName </td>
          <td>(</td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>fullModuleName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Mangle a function name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fullModuleName</td><td>The full name of the module. Example github.com/russelltg/test/lib </td></tr>
    <tr><td class="paramname">name</td><td>The name of the function </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The mangled name </dd></dl>

<p class="definition">Definition at line <a class="el" href="NameMangler_8cpp_source.html#l00009">9</a> of file <a class="el" href="NameMangler_8cpp_source.html">NameMangler.cpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="GraphModule_8cpp_source.html#l00425">chi::GraphModule::addForwardDeclarations()</a>, and <a class="el" href="FunctionCompiler_8cpp_source.html#l00035">chi::FunctionCompiler::initialize()</a>.</p>
<div id="dynsection-33" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-33-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-33-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-33-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_a44456c5ad1624ffdc805eb161eb948a1_icgraph.svg" width="431" height="118"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a9c3fbcf4f981b77fca1fe2db6315e341"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c3fbcf4f981b77fca1fe2db6315e341">&#9670;&nbsp;</a></span>parseBitcodeFile()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::parseBitcodeFile </td>
          <td>(</td>
          <td class="paramtype">const boost::filesystem::path &amp;&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">llvm::LLVMContext &amp;&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::unique_ptr&lt; llvm::Module &gt; *&#160;</td>
          <td class="paramname"><em>toFill</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parse a bitcode file. </p>
<p>Convenience function to make it LLVM version independent and reutrn a result </p>

<p class="definition">Definition at line <a class="el" href="BitcodeParser_8cpp_source.html#l00056">56</a> of file <a class="el" href="BitcodeParser_8cpp_source.html">BitcodeParser.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>.</p>

<p class="reference">Referenced by <a class="el" href="Context_8cpp_source.html#l00298">chi::Context::compileModule()</a>, and <a class="el" href="DefaultModuleCache_8cpp_source.html#l00087">chi::DefaultModuleCache::retrieveFromCache()</a>.</p>
<div id="dynsection-34" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-34-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-34-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-34-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_a9c3fbcf4f981b77fca1fe2db6315e341_cgraph.svg" width="558" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
<div id="dynsection-35" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-35-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-35-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-35-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_a9c3fbcf4f981b77fca1fe2db6315e341_icgraph.svg" width="390" height="104"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="aa47212ba13fb1a1d26774dc208c15255"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa47212ba13fb1a1d26774dc208c15255">&#9670;&nbsp;</a></span>parseColonPair()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::pair&lt;std::string, std::string&gt; chi::parseColonPair </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>in</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Parse a colonated pair Example: lang:i32 would turn into {lang, i32}. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in</td><td>The colonated pair </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>{first, second} </dd></dl>

<p class="definition">Definition at line <a class="el" href="GraphFunction_8hpp_source.html#l00355">355</a> of file <a class="el" href="GraphFunction_8hpp_source.html">GraphFunction.hpp</a>.</p>

<p class="reference">References <a class="el" href="GraphFunction_8hpp_source.html#l00328">chi::GraphFunction::module()</a>, and <a class="el" href="GraphFunction_8hpp_source.html#l00313">chi::GraphFunction::name()</a>.</p>

<p class="reference">Referenced by <a class="el" href="JsonDeserializer_8cpp_source.html#l00121">createGraphFunctionDeclarationFromJson()</a>, <a class="el" href="JsonDeserializer_8cpp_source.html#l00232">jsonToGraphFunction()</a>, <a class="el" href="JsonDeserializer_8cpp_source.html#l00450">jsonToGraphStruct()</a>, and <a class="el" href="GraphModule_8cpp_source.html#l00606">chi::GraphModule::nodeTypeFromName()</a>.</p>
<div id="dynsection-36" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-36-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-36-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-36-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_aa47212ba13fb1a1d26774dc208c15255_cgraph.svg" width="100%" height="574"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-37" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-37-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-37-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-37-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_aa47212ba13fb1a1d26774dc208c15255_icgraph.svg" width="100%" height="591"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a2b3839fa03d8bfb6ef3238543d44d865"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b3839fa03d8bfb6ef3238543d44d865">&#9670;&nbsp;</a></span>parseObjectPair()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::pair&lt; std::string, std::string &gt; chi::parseObjectPair </td>
          <td>(</td>
          <td class="paramtype">const nlohmann::json &amp;&#160;</td>
          <td class="paramname"><em>object</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parse something that looks like: {"hello": "there"} into {"hello", "there"}. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">object</td><td>The json object </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>{"key", "value"} </dd></dl>

<p class="definition">Definition at line <a class="el" href="JsonDeserializer_8cpp_source.html#l00491">491</a> of file <a class="el" href="JsonDeserializer_8cpp_source.html">JsonDeserializer.cpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="JsonDeserializer_8cpp_source.html#l00121">createGraphFunctionDeclarationFromJson()</a>, <a class="el" href="JsonDeserializer_8cpp_source.html#l00450">jsonToGraphStruct()</a>, and <a class="el" href="GraphModule_8cpp_source.html#l00606">chi::GraphModule::nodeTypeFromName()</a>.</p>
<div id="dynsection-38" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-38-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-38-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-38-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a2b3839fa03d8bfb6ef3238543d44d865_icgraph.svg" width="100%" height="591"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="aa39dc32f0a553366a3e039b3f26402be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa39dc32f0a553366a3e039b3f26402be">&#9670;&nbsp;</a></span>resolveUrlFromModuleName()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::tuple&lt; VCSType, std::string, std::string &gt; chi::resolveUrlFromModuleName </td>
          <td>(</td>
          <td class="paramtype">const boost::filesystem::path &amp;&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the URL for a VCS repository from a module name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>The module name </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>{The type of VCS that it is, the URL to clone, the relative path to clone to} </dd></dl>

<p class="definition">Definition at line <a class="el" href="Fetcher_8cpp_source.html#l00303">303</a> of file <a class="el" href="Fetcher_8cpp_source.html">Fetcher.cpp</a>.</p>

</div>
</div>
<a id="a29ff9f3364b9ad0f25a990b8373971b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29ff9f3364b9ad0f25a990b8373971b4">&#9670;&nbsp;</a></span>stringifyLLVMType()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string chi::stringifyLLVMType </td>
          <td>(</td>
          <td class="paramtype">llvm::Type *&#160;</td>
          <td class="paramname"><em>ty</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Turns a type into a string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ty</td><td>The type to stringify </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The return string </dd></dl>

<p class="definition">Definition at line <a class="el" href="Context_8cpp_source.html#l00474">474</a> of file <a class="el" href="Context_8cpp_source.html">Context.cpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="GraphModule_8cpp_source.html#l00866">chi::GraphModule::createNodeTypeFromCCode()</a>, and <a class="el" href="Context_8hpp_source.html#l00194">chi::Context::moduleCache()</a>.</p>
<div id="dynsection-39" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-39-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-39-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-39-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a29ff9f3364b9ad0f25a990b8373971b4_icgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a1d6b6147c7af9c57c248816b5b1eb6dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d6b6147c7af9c57c248816b5b1eb6dc">&#9670;&nbsp;</a></span>unmangleFunctionName()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::pair&lt; std::string, std::string &gt; chi::unmangleFunctionName </td>
          <td>(</td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>mangled</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unmangle a function name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mangled</td><td>The mangled name </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The unmangled name; {moduleName, functionName} </dd></dl>

<p class="definition">Definition at line <a class="el" href="NameMangler_8cpp_source.html#l00045">45</a> of file <a class="el" href="NameMangler_8cpp_source.html">NameMangler.cpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="Debugger_8cpp_source.html#l00244">chi::Debugger::nodeFromFrame()</a>.</p>
<div id="dynsection-40" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-40-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-40-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-40-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a1d6b6147c7af9c57c248816b5b1eb6dc_icgraph.svg" width="100%" height="300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="acdc71d0d7f04f55316cc16af79b7f5b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acdc71d0d7f04f55316cc16af79b7f5b1">&#9670;&nbsp;</a></span>validateFunction()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::validateFunction </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;&#160;</td>
          <td class="paramname"><em>func</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Validate that a function is compilable. </p>
<p>If this succeeds, then it should be compilable Calls validateFunctionConnectionsAreTwoWay and validateFunctionNodeInputs </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>The function to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structchi_1_1Result.html" title="The result object, used for identifiying errors with good diagnostics. ">Result</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="FunctionValidator_8cpp_source.html#l00015">15</a> of file <a class="el" href="FunctionValidator_8cpp_source.html">FunctionValidator.cpp</a>.</p>

<p class="reference">References <a class="el" href="GraphFunction_8hpp_source.html#l00328">chi::GraphFunction::module()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00313">chi::GraphFunction::name()</a>, <a class="el" href="ChiModule_8hpp_source.html#l00058">chi::ChiModule::shortName()</a>, <a class="el" href="FunctionValidator_8cpp_source.html#l00031">validateFunctionConnectionsAreTwoWay()</a>, <a class="el" href="FunctionValidator_8cpp_source.html#l00249">validateFunctionEntryType()</a>, <a class="el" href="FunctionValidator_8cpp_source.html#l00222">validateFunctionExecOutputs()</a>, <a class="el" href="FunctionValidator_8cpp_source.html#l00281">validateFunctionExitTypes()</a>, <a class="el" href="FunctionValidator_8cpp_source.html#l00310">validateFunctionMainSignature()</a>, and <a class="el" href="FunctionValidator_8cpp_source.html#l00198">validateFunctionNodeInputs()</a>.</p>

<p class="reference">Referenced by <a class="el" href="FunctionCompiler_8cpp_source.html#l00035">chi::FunctionCompiler::initialize()</a>.</p>
<div id="dynsection-41" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-41-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-41-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-41-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_acdc71d0d7f04f55316cc16af79b7f5b1_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-42" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-42-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-42-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-42-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_acdc71d0d7f04f55316cc16af79b7f5b1_icgraph.svg" width="350" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a3e66ba93ae2a152ebc13ec75a15b6e74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e66ba93ae2a152ebc13ec75a15b6e74">&#9670;&nbsp;</a></span>validateFunctionConnectionsAreTwoWay()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::validateFunctionConnectionsAreTwoWay </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;&#160;</td>
          <td class="paramname"><em>func</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Make sure that connections connect back and that they have the same types. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>The function to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structchi_1_1Result.html" title="The result object, used for identifiying errors with good diagnostics. ">Result</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="FunctionValidator_8cpp_source.html#l00031">31</a> of file <a class="el" href="FunctionValidator_8cpp_source.html">FunctionValidator.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>, <a class="el" href="Result_8hpp_source.html#l00123">chi::Result::addScopedContext()</a>, <a class="el" href="ChiModule_8hpp_source.html#l00061">chi::ChiModule::fullName()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00077">chi::NodeInstance::inputDataConnections</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00328">chi::GraphFunction::module()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00313">chi::GraphFunction::name()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00051">chi::GraphFunction::nodes()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00080">chi::NodeInstance::outputExecConnections</a>, <a class="el" href="NodeType_8cpp_source.html#l00017">chi::NodeType::qualifiedName()</a>, <a class="el" href="NodeInstance_8hpp_source.html#l00068">chi::NodeInstance::stringId()</a>, and <a class="el" href="NodeInstance_8hpp_source.html#l00046">chi::NodeInstance::type()</a>.</p>

<p class="reference">Referenced by <a class="el" href="FunctionValidator_8cpp_source.html#l00015">validateFunction()</a>.</p>
<div id="dynsection-43" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-43-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-43-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-43-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a3e66ba93ae2a152ebc13ec75a15b6e74_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-44" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-44-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-44-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-44-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_a3e66ba93ae2a152ebc13ec75a15b6e74_icgraph.svg" width="612" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="ad34490af81585a6e47a52e672ea33f01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad34490af81585a6e47a52e672ea33f01">&#9670;&nbsp;</a></span>validateFunctionEntryType()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::validateFunctionEntryType </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;&#160;</td>
          <td class="paramname"><em>func</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Make sure the function entry type aligns with the function type. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>The function to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structchi_1_1Result.html" title="The result object, used for identifiying errors with good diagnostics. ">Result</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="FunctionValidator_8cpp_source.html#l00249">249</a> of file <a class="el" href="FunctionValidator_8cpp_source.html">FunctionValidator.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00145">chi::GraphFunction::dataInputs()</a>, <a class="el" href="GraphFunction_8cpp_source.html#l00044">chi::GraphFunction::entryNode()</a>, <a class="el" href="ChiModule_8hpp_source.html#l00061">chi::ChiModule::fullName()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00328">chi::GraphFunction::module()</a>, and <a class="el" href="GraphFunction_8hpp_source.html#l00313">chi::GraphFunction::name()</a>.</p>

<p class="reference">Referenced by <a class="el" href="FunctionValidator_8cpp_source.html#l00015">validateFunction()</a>.</p>
<div id="dynsection-45" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-45-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-45-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-45-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_ad34490af81585a6e47a52e672ea33f01_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-46" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-46-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-46-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-46-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_ad34490af81585a6e47a52e672ea33f01_icgraph.svg" width="600" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="ae075e3bed58aaa6484e4b0e90872c19e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae075e3bed58aaa6484e4b0e90872c19e">&#9670;&nbsp;</a></span>validateFunctionExecOutputs()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::validateFunctionExecOutputs </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;&#160;</td>
          <td class="paramname"><em>func</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Make sure nodes have an output connection. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>The function to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structchi_1_1Result.html" title="The result object, used for identifiying errors with good diagnostics. ">Result</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="FunctionValidator_8cpp_source.html#l00222">222</a> of file <a class="el" href="FunctionValidator_8cpp_source.html">FunctionValidator.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>, <a class="el" href="Result_8hpp_source.html#l00123">chi::Result::addScopedContext()</a>, <a class="el" href="ChiModule_8hpp_source.html#l00061">chi::ChiModule::fullName()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00328">chi::GraphFunction::module()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00313">chi::GraphFunction::name()</a>, and <a class="el" href="GraphFunction_8hpp_source.html#l00051">chi::GraphFunction::nodes()</a>.</p>

<p class="reference">Referenced by <a class="el" href="FunctionValidator_8cpp_source.html#l00015">validateFunction()</a>.</p>
<div id="dynsection-47" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-47-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-47-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-47-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_ae075e3bed58aaa6484e4b0e90872c19e_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-48" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-48-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-48-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-48-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_ae075e3bed58aaa6484e4b0e90872c19e_icgraph.svg" width="570" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="af52d66c93c9e19da67c21bbb5747f5a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af52d66c93c9e19da67c21bbb5747f5a4">&#9670;&nbsp;</a></span>validateFunctionExitTypes()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::validateFunctionExitTypes </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;&#160;</td>
          <td class="paramname"><em>func</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Make sure the function exit types align with the function type. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>The function to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structchi_1_1Result.html" title="The result object, used for identifiying errors with good diagnostics. ">Result</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="FunctionValidator_8cpp_source.html#l00281">281</a> of file <a class="el" href="FunctionValidator_8cpp_source.html">FunctionValidator.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00180">chi::GraphFunction::dataOutputs()</a>, and <a class="el" href="GraphFunction_8cpp_source.html#l00087">chi::GraphFunction::nodesWithType()</a>.</p>

<p class="reference">Referenced by <a class="el" href="FunctionValidator_8cpp_source.html#l00015">validateFunction()</a>.</p>
<div id="dynsection-49" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-49-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-49-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-49-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_af52d66c93c9e19da67c21bbb5747f5a4_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-50" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-50-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-50-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-50-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_af52d66c93c9e19da67c21bbb5747f5a4_icgraph.svg" width="563" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a6e8d6d34851f9df4edc4b82fedf424ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e8d6d34851f9df4edc4b82fedf424ce">&#9670;&nbsp;</a></span>validateFunctionMainSignature()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::validateFunctionMainSignature </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;&#160;</td>
          <td class="paramname"><em>func</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Make sure it's a valid signautre for a main function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>The function to verify </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structchi_1_1Result.html" title="The result object, used for identifiying errors with good diagnostics. ">Result</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="FunctionValidator_8cpp_source.html#l00310">310</a> of file <a class="el" href="FunctionValidator_8cpp_source.html">FunctionValidator.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8cpp_source.html#l00052">chi::Result::addEntry()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00145">chi::GraphFunction::dataInputs()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00180">chi::GraphFunction::dataOutputs()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00216">chi::GraphFunction::execInputs()</a>, and <a class="el" href="GraphFunction_8hpp_source.html#l00241">chi::GraphFunction::execOutputs()</a>.</p>

<p class="reference">Referenced by <a class="el" href="FunctionValidator_8cpp_source.html#l00015">validateFunction()</a>.</p>
<div id="dynsection-51" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-51-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-51-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-51-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a6e8d6d34851f9df4edc4b82fedf424ce_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-52" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-52-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-52-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-52-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_a6e8d6d34851f9df4edc4b82fedf424ce_icgraph.svg" width="568" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a0d84079ff2eef897472e3096589e62d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d84079ff2eef897472e3096589e62d7">&#9670;&nbsp;</a></span>validateFunctionNodeInputs()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structchi_1_1Result.html">Result</a> chi::validateFunctionNodeInputs </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structchi_1_1GraphFunction.html">GraphFunction</a> &amp;&#160;</td>
          <td class="paramname"><em>func</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Make sure that nodes are called before their outputs are used. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>The function to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structchi_1_1Result.html" title="The result object, used for identifiying errors with good diagnostics. ">Result</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="FunctionValidator_8cpp_source.html#l00198">198</a> of file <a class="el" href="FunctionValidator_8cpp_source.html">FunctionValidator.cpp</a>.</p>

<p class="reference">References <a class="el" href="Result_8hpp_source.html#l00123">chi::Result::addScopedContext()</a>, <a class="el" href="GraphFunction_8cpp_source.html#l00044">chi::GraphFunction::entryNode()</a>, <a class="el" href="ChiModule_8hpp_source.html#l00061">chi::ChiModule::fullName()</a>, <a class="el" href="GraphFunction_8hpp_source.html#l00328">chi::GraphFunction::module()</a>, and <a class="el" href="GraphFunction_8hpp_source.html#l00313">chi::GraphFunction::name()</a>.</p>

<p class="reference">Referenced by <a class="el" href="FunctionValidator_8cpp_source.html#l00015">validateFunction()</a>.</p>
<div id="dynsection-53" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-53-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-53-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-53-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespacechi_a0d84079ff2eef897472e3096589e62d7_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<div id="dynsection-54" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-54-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-54-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-54-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_a0d84079ff2eef897472e3096589e62d7_icgraph.svg" width="570" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="af9629143a0367909c7d5173453012335"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9629143a0367909c7d5173453012335">&#9670;&nbsp;</a></span>workspaceFromChildPath()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">fs::path chi::workspaceFromChildPath </td>
          <td>(</td>
          <td class="paramtype">const boost::filesystem::path &amp;&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the workspace directory from a child of the workspace directory Example: say you have a workspace at ~/chi/ If you used this with ~/chi/src/ it would return ~/chi/. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>The child path </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The workspace path, or an empty path if it wasn't found </dd></dl>

<p class="definition">Definition at line <a class="el" href="Context_8cpp_source.html#l00462">462</a> of file <a class="el" href="Context_8cpp_source.html">Context.cpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="Context_8cpp_source.html#l00040">chi::Context::Context()</a>, and <a class="el" href="Context_8hpp_source.html#l00194">chi::Context::moduleCache()</a>.</p>
<div id="dynsection-55" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-55-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-55-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-55-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespacechi_af9629143a0367909c7d5173453012335_icgraph.svg" width="432" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacechi.html">chi</a></li>
    <li class="footer">Generated on Sat Sep 16 2017 17:41:35 for chigraph by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
